package com.vanysoft.business.base.tag.dao;

import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.vanysoft.business.base.tag.entity.TBaseTag;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BaseTagMapper {
    int deleteByPrimaryKey(String tagCode);

    int insert(TBaseTag record);

    int insertSelective(TBaseTag record);

    TBaseTag selectByPrimaryKey(String tagCode);

    int updateByPrimaryKeySelective(TBaseTag record);

    int updateByPrimaryKey(TBaseTag record);

    List<Map<String, Object>> queryTagTree(String owner);

    /**
     * Function Name               queryTagAllTree
     *
     * @return
     * @description (发送消息查询所有标签 - 消息中心)
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年8月29日 下午2:34:45          SharpClaw_x                     Initial
     * *********************************************************************
     */
    List<Map<String, Object>> queryAllTagTree();

    List<Map<String, Object>> queryTagUsers(Pagination pagination, @Param("tagCode") String tagCode, @Param("searchContent") String searchContent);

    List<Map<String, Object>> queryTagUsers(@Param("tagCode") String tagCode, @Param("searchContent") String searchContent);

    /**
     * Function Name               queryTagInfoByUserCode
     *
     * @param userCode
     * @return
     * @description TODO(根据用户代码查询所属标签信息)
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年5月27日 下午1:50:25          SharpClaw_x                     Initial
     * *********************************************************************
     */
    List<Map<String, Object>> queryTagInfoByUserCode(String userCode);

    int deleteUserTags(String tagCode);

    List<Map> queryChildTag(String tagCode);
}